1. Field of the Invention
The present invention generally relates to communications; more specifically, wireless communications.
2. Description of the Related Art
In certain wireless communication systems such as Code Division Multiple Access (CDMA) communication systems, communication channels are defined by using codes (e.g., orthogonal Walsh codes) that are part of a set of codes or a code space. Typically, a user of the communication system is assigned one or more codes that the user uses to convey (i.e., transmit and/or receive) information. The information, which can be voice or data (e.g., graphics, text, digitized video), will have different channel requirements depending on its type. Base Station equipment, which is part of the system equipment of the communication system, will assign certain users to certain channel codes based on the characteristics of the user information. For example, users that are conveying voice signals will have priority over users conveying data information; this is because voice signals are time sensitive in that very little or no delay is allowed to occur from the time a voice signal is received by the base station equipment to the time the base station equipment transmits such a signal. Data information, on the other hand, can tolerate delays in transmissions and can therefore be processed in a more flexible fashion by the base station equipment. The set of communication channels over which information is transmitted by the base station equipment to users of a wireless communication system is commonly referred to as the downlink.
In mixed service communication systems (i.e., systems that convey both voice and data information), the efficiency of the channel usage for data information is critical because of the priority given to the voice information. The base station assigns a portion of the codes to the voice information, which the base station has scheduled to be transmitted over the downlink; the remaining codes (i.e., the available code space) are then made available for conveyance of data information. As the capacity of the system increases, the probability of the need to transmit a relatively large amount of data at a particular instant of time also increases. However, because of the bursty nature of data, the need to transmit a relatively large amount of data is usually transitory; that is, at one instant, a large amount of data is scheduled to be transmitted and at another instant, very little or no data is scheduled to be transmitted. Typically, for CDMA communication systems, information (i.e., voice or data) is transmitted during a chosen time period or time slot referred to as the Transmission Time Interval (TTI). Also, the downlink for a specific user has a certain data rate (i.e., the number of bits per second that can be transmitted over the link at a particular instant of time) designated as Rchannel. It should be noted that Rchannel does not necessarily remain constant; it changes based on varying channel conditions. Because the number of codes available for data transmission is limited by the voice information being transmitted by the system, the allocation of code space to users in a manner that promotes relatively highly efficient channel usage for data information becomes crucial.
A first solution for improving the efficiency of channel usage for data information is to allocate a certain number of codes (from the available code space) to each scheduled user according to the user's data rate requirement. Each scheduled user, which has been allocated a certain number of codes, is then allowed to transmit its data information during the entire TTI. In this manner, the channel is used efficiently and users are given the proper amount of resources they need to transmit their data information. For example, suppose 5 users (users A, B, C, D, E) are scheduled to receive data information during a particular TTI. User A is to receive 20,000 bits of information, user B is to receive 30,000 bits of information, user C is to receive 40,000 bits of information, user D is to receive 5,000 bits of information and user E is also to receive 5,000 bits of information. Suppose further that the channel data rate for each user for this particular TTI is 100,000 bits per second (bps) or 100 Kbps where the particular TTI is one second in length and there are 100 codes available. Thus, the data rate for user A is 20 Kbps, (i.e., 20,000 bits÷1 sec.) for user B, 30 Kbps, for user C, 40 Kbps, for user D, 5 Kbps and for user E, 5 Kbps. User A thus has a need for 20% of the channel resources and accordingly is allocated 20 codes from the 100 available codes. Likewise, User B is given 30 codes, user C is given 40 codes and users D and E are each given 5 codes. The packing efficiency—which is defined as the ratio of the data rate required by a scheduled user to the data rate allocated to that user—for each of the 5 users is therefore 100%. The packing efficiency is a particular measure of downlink efficiency; other similar measures can be used as indicators of efficiency. Suppose for User D, just prior to transmission, for some reason half of the data bits are no longer available. Now user D needs to transmit 2500 bits over the one second TTI or 2.5 Kbps instead of 5 Kbps. If user D is still allocated 5 codes, the packing efficiency for user D decreases to 50%. An additional 2500 bits of filler bits would have to be transmitted with the 2500 bits of data information to meet the 5 Kbps allocation; this represents a wasteful and therefore inefficient use of channel resources. A better use of the channel resources, would be, if possible, to allocate 3 codes to user D allowing it to transmit up to 3000 bits over the one second TTI thus increasing its packing efficiency to 83.33%. The remaining 2 codes would then be available for other users which need a data rate of 2000 bps or less.
One problem with the solution described above is that for each TTI, the base station equipment has to determine how to allocate the available code space to the number of data users scheduled for the TTI. In order to determine the code space allocation for each of the users scheduled for the upcoming TTI, a signaling or overhead channel is created within which information about the data rate needs of each scheduled user (plus other information) is transmitted by the users to the base station. The signaling or overhead channel represents additional resources (e.g., radio equipment usage, codes allocated to the scheduled user or users) that the communication system uses to accomplish the necessary communications. Further, a separate allocation must be done for each new TTI because the number of codes available for data transmission and the data rate of the downlink (i.e., Rchannel) and the amount of data to be transmitted to each user can change for each new TTI. Also, because all of the information for the scheduled users is transmitted simultaneously during the entire TTI, the channel conditions experienced by some of these users during portions of the TTI may cause these users to have unacceptable throughputs. The subset of codes allocated to each user has to be communicated by the base station to each user during every TTI via the overhead and/or signaling information; this will further reduce each user's throughput. The throughput is the amount of information (e.g., number of bits) successfully received by the user over a defined time period. It would be desirable to schedule these users using a reduced TTI such that each user is appropriately scheduled and uses all of the available codes for transmission resulting in an improved throughput; a second solution uses this approach.
In the second solution, the amount of time for transmission of data information is reduced to a relatively smaller time slot of a certain duration and all of the available codes are allocated to a particular user for which data transmission is being performed. In this solution, the total available code space is broadcast to all users at a relatively low rate corresponding to the slow rate of change of available codes; this results in less overhead compared to the first solution. In essence, for each scheduled user, data information is transmitted at the data rate of the user's downlink, Rchannel, using all of the available codes. The total throughput for this second solution is typically much higher compared to the first solution because the second solution allows for more flexible scheduling. Each user is assigned to one or more time slots depending on the data rate of the downlink, the data rate requirement of the user and the channel conditions during the particular time slots. One advantage of this solution is that variations in the channel conditions can be exploited so that stronger users are given priority over weaker users in scheduling resulting in increased throughput for the downlink. The base station receives signaling information from users regarding the throughput of each user. The base station equipment might schedule data transmission for a particular user prior to any other waiting user data because that user's throughput is higher than the throughput of any of the other waiting users. For example, the base station equipment may determine that out of the five users, user C has the best throughput. Therefore, user C's data information would be transmitted first. For the sake of illustration, suppose the time slot is 0.666 msec. in duration and there are 10 codes available for data transmission. Suppose further that Rchannel is 15.15 Mbps for all of the waiting users. Thus, using the same users and corresponding data rate values in the first solution discussed above, user C, which has a data amount of 40,000 bits, would be allocated four time slots whereby in each time slot 0.666 msec×15.15 Mbps=10,000 bits of data information can be transmitted and all of the available codes are used for each transmission. The base station would perform a similar determination for the remaining four users and schedule each of them accordingly. Suppose that Rchannel does not change for each of the remaining users, then at their scheduled transmission times, user A would be allocated two time slots, user B would be allocated three time slots and users D and E would be allocated one time slot each. The packing efficiency for users A, B, and C would be 100% and the packing efficiency for user D and E would be only 50% since each time slot allows a data rate of up to 10 Kbps and only 5,000 bits are being transmitted for users D and E respectively.
A major problem with the second solution is that the number of available codes may be relatively large resulting in significant portions of the time slots being wasted since the achievable data rate of each time slot increases as the total number of available codes increases and available data to be transmitted to each user is relatively small. For example, continuing with the above example, suppose at some time later, user C still has a data amount of 40 Kilobits but the number of available codes has increased from 10 codes to 20 codes. In such an instance only half of the time slot would be needed to transmit data information for user C reducing the packing efficiency from 100% to 50%. Similar occurrences with other users will have the net effect of decreasing the overall efficiency of the downlink.
What is therefore needed is a method for maintaining or even increasing the efficiency of a downlink of a communication system—that uses codes to define its channel structure—as the number of available codes varies.